iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)系列 第 21

[Day21] Ruby on Rails - Rails enum and alias enum 的使用說明

  • 分享至 

  • xImage
  •  

在 Rails model 裡面,我們很常會定義所謂一筆資料的「狀態」,以貨運的例子來講,可以定義成「空運」、「海運」。又或是一筆發票,可以定義成「進口發票」、「出口發票」。

在 Rails 裡的資料庫,我們只要儲存 integer,並在 model / concerns 裡定義及維護好這些屬性,就可以直接使用。

然後在 migration 生成資料時,記得型態選擇為 integer,由於我們專案的關係,初始值就不要強迫設定。以下面為例子,comment 是自己註記用,可加也可不加。
https://ithelp.ithome.com.tw/upload/images/20190922/20112656OtFHCQM006.png

以貨運的例子及發票的屬性來講,我們就可以在 model 宣告為:
https://ithelp.ithome.com.tw/upload/images/20190922/20112656MmeWiHFqv4.png

至於,在這次範例中的 alias_enum 是因為本範例,會有另一個系統,透過 API 傳送資料過來,舉例為另一個系統是傳 AE,哪相對應就會吃到 air_impoer.

總結:
今天根據要使用的情境,已知是很確定要設定的屬性為何及固定不會有很大的變化,就使用 integer + Enum 的機制做,並且也是最有彈性及最節省資料庫欄位大小的法。


上一篇
[Day20] Ruby on Rails - 寄發信件
下一篇
[Day22] Ruby on Rails - Rake 的使用
系列文
Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言